package models;

import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;

import play.db.jpa.Model;

@Entity
public class Eleitor extends Model {

	public static enum Status {
		NOVO, CONFIGUROU_LOCALIZACAO, CONFIGUROU_POLITICOS
	}

	private String foto;
	private String nome;
	private String email;
	private String pais;
	private String uf;
	private String cidade;
	private String cep;
	private String dataNascimento;
	private String genero;
	@Column(nullable = false, unique = true)
	private String facebookID;
	private String token;
	private Status status;

	@ManyToMany
	private Set<Politico> politicos;
	@OneToMany(mappedBy = "eleitor", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
	private Set<Posicao> posicoes;

	public String getFoto() {
		return foto;
	}

	public void setFoto(String foto) {
		this.foto = foto;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getUf() {
		return uf;
	}

	public void setUf(String uf) {
		this.uf = uf;
	}

	public String getFacebookID() {
		return facebookID;
	}

	public void setFacebookID(String facebookID) {
		this.facebookID = facebookID;
	}

	public String getToken() {
		return token;
	}

	public void setToken(String token) {
		this.token = token;
	}

	public Set<Politico> getPoliticos() {
		return politicos;
	}

	public void setPoliticos(Set<Politico> politicos) {
		this.politicos = politicos;
	}

	public String getDataNascimento() {
		return dataNascimento;
	}

	public void setDataNascimento(String dataNascimento) {
		this.dataNascimento = dataNascimento;
	}

	public String getGenero() {
		return genero;
	}

	public void setGenero(String genero) {
		this.genero = genero;
	}

	public Set<Posicao> getPosicoes() {
		return posicoes;
	}

	public void setPosicoes(Set<Posicao> posicoes) {
		this.posicoes = posicoes;
	}

	public String getCidade() {
		return cidade;
	}

	public void setCidade(String cidade) {
		this.cidade = cidade;
	}

	public String getCep() {
		return cep;
	}

	public void setCep(String cep) {
		this.cep = cep;
	}

	public String getPais() {
		return pais;
	}

	public void setPais(String pais) {
		this.pais = pais;
	}

	public Status getStatus() {
		return status;
	}

	public void setStatus(Status status) {
		this.status = status;
	}
}
